1. Field of the Invention
The present invention relates to the performance of color gamut compressions in an apparatus such as a color printer device. More particularly, the present Invention relates to a color printer device wherein a color Image to be printed is analyzed at the same time it is being stored, and the color gamut of the image is compressed at the same time it is being removed from storage for printing, so that the color image can be analyzed and compressed in real time.
2. Discussion of the Related Art
Color printers that can be used for producing color reproductions of original and color images are known. Methods and apparatus relating to color image reproduction are described in, for example, U.S. Pat. Nos. 4,670,780, 4,707,727, 4,731,662, and 4,873,570, all of which are expressly incorporated herein by reference. The following articles, which relate to color image reproductions, are also expressly incorporated herein by reference: Stone et al., "Color Gamut Mapping and the Printing of Digital Color Images," ACM Transactions on Graphics, Vol. 7, No. 4, pp. 249-292 (October 1988); Stone et al., "Color Gamut Mapping and the Printing of Digital Color Images," Xerox Report EDL-88-1 [P88-00021], pp. 1-52 (April 1988); and Gordon et al., "On the Rendition of Unprintable Colors," Proceedings of the Technical Association of the Graphic Arts, pp. 186-195 (1987).
A color printer is limited in the range of colors it can reproduce. Thus, a source image (i.e., an original image) to be printed by the color printer may include colors that the printer is not able to reproduce. This in particularly true of color images created for a CRT (cathode-ray tube) monitor because the color gamut available to a CRT is typically much larger than the color gamut of a color printer. Consequently, it is often the case that the colors of the source image gamut must be mapped into the colors of the printer gamut (i.e., the colors which the printer is capable of producing) before any printing can be carried out. This process is called "gamut compression," because it involves compressing the color gamut of the source image until it fits within the color gamut of the printer.
A method of mapping the colors of a source image into the producible colors of a printer gamut (i.e., a method of compressing the source image gamut) is disclosed in U.S. Pat. No, 4,758,885, which is expressly incorporated herein by reference. In the '885 patent, the source image gamut of a monitor is shrunk so that it will fit within the printer gamut. However, in the '885 patent, the gamut of every source image is shrunk or compressed in the same way. Even if the source image only contains colors that the printer is capable of printing, the colors in the source image gamut are still mapped (i.e., the source image gamut is still compressed) before the source image is reproduced. Thus, in the '895 patent, unnecessary distortions and changes are introduced to the source image in situations where the original source image gamut does not need to be compressed in order to fit within the printer gamut.
Rather than compressing each source image in the same way, it is preferable to determine a different mapping or compression scheme for each source image so that unnecessary distortion of the source image can be kept to a minimum. For example, if all of the colors of a source image gamut are within the printer gamut, then the source image should not be mapped (i.e., the color gamut of the source image should not be compressed). This approach is suggested in the Stone et al. articles incorporated by reference above. Nevertheless, the methods described in the Stone et al. articles require sophisticated human analysis of the source image and printer gamuts.
The need for sophisticated human analysis can be eliminated by carrying out the gamut compression automatically, as described in the following articles by P. Laihanen, both of which are expressly incorporated herein by reference: "Optimization of Digital Color Reproduction on the Basis of Visual Assessment of Reproduced Images," Proceedings of the SID, Vol. 30, No. 3, pp. 183-190 (1969), and "Colour Reproduction Theory Based on the Principles of Colour Science," Advances in Printing Science and Technology, June 1987 Conference, Pantech Press, London (1988). While the Laihanen articles contemplate the automatic compression of color gamuts, they do not address techniques for performing gamut compressions in real time. The '885 patent, which was discussed above, suffers from the came drawback. That is, the colors described in the '885 patent are not intended for use in perfoming real time adjustments to, or compressions of, the color gamuts of a variety of source images.
Adjusting the gamut of a source image to fit within the printer gamut is generally a two-stage process. A conventional device for performing such gamut adjustment or compression is shown in FIG. 1.
With reference to FIG. 1, an image buffer 13 generally receives a source image (e.g., a color image) from an image input device 11 and then stores the image until it is operated on by gamut compression circuitry 17. The image input device 11 may be an input for a color monitor, while the image buffer 13 may be a RAM (random access memory) having memory locations corresponding to the pixels of the source image input by the image input device 11. At each memory location in the image buffer 13, color information for a given pixel of the source image is stored.
In FIG. 1, the gamut compression circuitry 17 performs a two-stage gamut compression process. The first stage of the gamut compression process entails an examination of the color of each pixel of the source image stored in the image buffer 13 for the purpose of determining the boundary of the source image gamut. The second stage of the process, performed after the source image gamut has been compared with the printer gamut, involves altering the color value of each pixel stored in the image buffer 13 so as to bring the colors of the source image stored in the image buffer within the printer gamut.
In the gamut compression process performed by the system shown in FIG. 1, the color of each image pixel stored in the image buffer 13 must be considered twice: a first time for analyzing the boundary of the source image gamut, and a second time for mapping or altering the color of each pixel of the source image in order to compress the source image gamut. After the colors of the source image stored in the image buffer 13 have been mapped in this fashion (i.e., after the source image gamut has been compressed to fit within the printer gamut), the image is output from the Image buffer 13 to an image output device 15 (e.g., a color printer),
FIG. 2 is similar to FIG. 1 in that it shows a conventional color printing system in which colors of a image are considered twice. However, in the system shown in FIG. 2( gamut compressions are not performed, because source image colors which cannot be printed by the printer system are never input into the system. Unprintable source image colors are never input to the printer system of FIG. 2 because this type of printer system does not allow an operator (e.g., a human operator) using the printer system to input colors which the image output device 25 is not capable of printing.
A color image having a sophisticated image description can be described by using existing page description languages such as those discussed in the following publications, all of which are expressly incorporated herein by reference: S. Harrington et al., "Interpress: The Source Book," Simon & Schuster, New York (1988); "Interpress Electronic Printing Standard," XNSS 049601, Xerox Corporation (1986), and "Postscript Language Reference Manual," Adobe Systems, Inc., Mass, (1990). These languages can be used in a system such as the printer system shown in FIG. 2.
In the system shown in FIG. 2, a color image is constructed or built within an image buffer 23 from a number of simple image Primitives (also called picture elements) such as lines and/or characters. The construction of the source image in the image buffer 23 is carried out by an image primitive generator 21. The image primitive generator 21 assembles or constructs the color image by collecting various primitives within the image buffer 23. Once the construction of the color image within the image buffer 23 is completed, the contents of tho image buffer 23 are forwarded to an image output device 25 so that the constructed color image can be printed. The colors of the source image are considered twice: a first time when the primitives are entered into the image buffer and a second time when the contents of the image buffer are printed.
The printer system shown in FIG. 2 is limited in that an operator using the image primitive generator 21 may only generate primitives for storage in the image buffer 23 that have colors which the image output device 25 is capable of producing. Thus, the printer system of FIG. 2 does not require gamut compression circuitry because the source image gamut stored in the image buffer 13 is always within the printer gamut (i.e., the gamut of image output device 25). Further, because the image printer system shown in FIG. 2 uses only input primitives having colors within the color gamut of the image output device 25, the storage capacity of the image buffer 23 is such that the image buffer 23 only represents or stores those colors included within the printer gamut.
A drawback associated with the conventional printer system shown in FIG. 1 is that the source image gamut cannot be determined in real time (i.e., at the same time the source image is being input into the image buffer 13) or compressed in real time (i.e., at the same time the source image in being read from the image buffer 13). Instead, the source image gamut is determined by the gamut compression circuitry 17 only after the source image has been stored in the image buffer 13. Similarly, the source image is read out from the image buffer 13 only after the gamut of the source image has been compressed.
The printer system of FIG. 2 also has a drawback. In the printer system of FIG. 2, the selection of source image colors available to the operator as the operator is constructing the source image is limited by the characteristics of the image output device 25 and the image buffer 23. In other words, the source image constructed by the operator in the image buffer 23 may only be composed of colors which can be represented in the image buffer 23 and reproduced by the image output device 25.